import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
# 实例化驱动
driver = webdriver.Chrome()
# 打开网页
driver.get("https://m.126.com/")
# 全屏
driver.maximize_window()
# 设置隐式等待
driver.implicitly_wait(15)
# 跳进iframe内联框架
iframe = WebDriverWait(driver,10,0.5).until(EC.presence_of_all_elements_located((By.TAG_NAME,"iframe")))
driver.switch_to.frame(iframe[0])

# 定位账号框  name = email唯一的
# driver.find_element(By.NAME,"email").send_keys("baijiacheng_123")
# driver.find_elements(By.CLASS_NAME,"j-inputtext")[0].send_keys("baijiacheng_123")
WebDriverWait(driver,10,0.5).until(EC.presence_of_all_elements_located((By.CLASS_NAME,"j-inputtext")))[0].send_keys("baijiacheng_123")

# 定位密码框  name = password 唯一的
driver.find_element(By.NAME,"password").send_keys("qwe123..")
# 点击登录按钮
driver.find_element(By.ID,"dologin").click()

# 点击登录按钮
time.sleep(2)
driver.find_element(By.XPATH,"//*[text()='登录']").click()

# 跳出所有的iframe内联框架
driver.switch_to.default_content()      #

# 点击未读邮件
driver.find_elements(By.CLASS_NAME,"kb1")[0].click()


# 查看页面结果
sleep(15)

"""
报错原因：
1、定位方式错了，换一种试试
2、没有加上等待时间，页面元素没加载出来直接做操作，定位不到
3、如果出现新的句柄，没有切换，也可能导致元素定位不到
4、出现了iframe内联框架：
                网页里面嵌套网页，需要跳进，才可以对内部元素进行操作
                如果后续要操作内容没有iframe，需要再跳出：switch_to.default_content()
"""